let app = getApp()
let eo = require('../lib/mobx').extendObservable;

let common_store = function() {
	eo(this, {
		sys_info: {},
		// 训练字符集
		train_set: {
			letter_all: [],
			letter_set: [],
		},
		// 输入的电码
		input_code: {
			code: "",
			show: "",
			temp: "",
			op_type: "train_random",
		},
		state: {
			cw: false,
			mqtt: false,
			bt: false,
			// 是否正在搜索设备
			flag_dev_discovery_start: false,
			flag_show_dev_select_dialog: false,
		},

		// 练习器的预设信息
		cw_info: {

		},
		bt_dev: {
			devs: [],
			chs: [],
			// 连接的设备信息
			c_dev: {
				// 是否连接
				connected: false,
				write: false,
			},
			// 底部连接控制
			dev_con: {
				show: false,
			}
		},
		// MQTT相关
		mqtt: {
			options: {
				// 超时时间
				connectTimeout: 5000, 
				clientId: '',
				clean: true,
			},
			client_id_length: 20,
			host: "wxs://cw.funner.pub/",
			topic: "cw",
			qos: 2,
			conn: Object,
			// 正在连接
			connecting: false,
			// 已连接
			connected: false,
			split_code: ":",
		},
		// 底部状态显示信息
		resp_info: "",
		settings: {
			// // 呼号
			// callsign: "ZClub",
			// // 键入电码单位时长
			// u_time: 110,
			// // 播放单位时长
			// play_u_time: 120,
			// // 防抖动时长
			// shake_time: 30,
			// // 是否将电码转为字符
			// conv_code: true,
			// // 是否自动发送电码到MQTT服务器
			// auto_send: true,
			// // 自动发送时长
			// auto_send_time: 2000,
			// // 字母间隔时长
			// split_time: 50,
			// // 蜂鸣器频率
			// bee_freq: 1800,
			// // 电键类型
			// key_type: true,
			// // 电键方向
			// auto_key_type: true,
			// // 是否播放自己的电码
			// play_my_code: true,
			// // 是否使用触摸电键

		},

		settings_default: {
			// 呼号
			callsign: "ZClub",
			// 键入电码单位时长
			u_time: 110,
			// 播放单位时长
			play_u_time: 120,
			// 防抖动时长
			shake_time: 30,
			// 是否将电码转为字符
			conv_code: true,
			// 是否自动发送电码到MQTT服务器
			auto_send: true,
			// 自动发送时长
			auto_send_time: 2000,
			// 蜂鸣器频率
			bee_freq: 1800,
			// 电键类型
			key_type: true,
			// 电键方向
			auto_key_type: true,
			// 是否播放自己的电码
			play_my_code: false,
			// 是否使用触摸电键
			touch_key: true,
			// 触摸电键的灵敏度阈值
			touch_val: 20,
			// 地狱模式
			exa_mode: false,
			// 地狱模式点划比例
			di_da_scale: 3,
			// 地狱模式容错率
			fault_rate: 0.1,
		},

		
		

		// 设置限制
		settings_limit: {
			u_time: {
				min: 30,
				max: 200,
			},
			play_u_time: {
				min: 30,
				max: 200,
			},
			shake_time: {
				min: 0,
				max: 30,
			},
			bee_freq: {
				min: 300,
				max: 2500,
			},
			auto_send_time: {
				min: 500,
				max: 10000,
			},
			touch_val: {
				min: 0,
				max: 100,
			},
			di_da_scale: {
				min: 2,
				max: 5,
			},
			fault_rate: {
				min: 0,
				max: 1,
			}
		},


		mc: [".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----.", "-----", "..--..", "-.-.--", "-..-."],

		mw: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '?', '!', '/'],

		w2c: {
			"A":".-",
			"B":"-...",
			"C":"-.-.",
			"D":"-..",
			"E":".",
			"F":"..-.",
			"G":"--.",
			"H":"....",
			"I":"..",
			"J":".---",
			"K":"-.-",
			"L":".-..",
			"M":"--",
			"N":"-.",
			"O":"---",
			"P":".--.",
			"Q":"--.-",
			"R":".-.",
			"S":"...",
			"T":"-",
			"U":"..-",
			"V":"...-",
			"W":".--",
			"X":"-..-",
			"Y":"-.--",
			"Z":"--..",
			"1":".----",
			"2":"..---",
			"3":"...--",
			"4":"....-",
			"5":".....",
			"6":"-....",
			"7":"--...",
			"8":"---..",
			"9":"----.",
			"0":"-----",
			"?":"..--..",
			"!":"-.-.--",
			"/":"-..-.",
		},

		// 设备信息
		sysInfo: {},



		// 电码播放实例
		cp: wx.createInnerAudioContext(),
		// cp: wx.getBackgroundAudioManager(),
		
		// 播放结束后的处理任务
		play_done_callback_fn: "",
	});
}

module.exports = {
	common_store: common_store
}

// export default common_store
